Optical character reading system



Y XWVU Sheet Y XWV U Y XWV U E. P. BUCKLIN, JR, ET AL FIGJ OPTICAL CHARACTER READING SYSTEM Y XWV U March 18, 1969 Filed July 6, 1955 YXWVU O0 O0 F00 .III- 0 00 {IL 0| 00 IO 00 o o o R 0 0 ll OI ll I .00 0 00 0Q F 00 f 0 I 0 00 00 0 00 D ID lo 00 O 00 00 00 0 00 0O 00 0 00 I 0|. 0| Ol 00 00 I0 I... 0O 00 n 00 f I! 0| O0 00 I0 .ll. 0| l OO 00 00 0 00 00 00 00 ll '0 i l INVENTORS EDWARD P. BUCKLIN JR. WERNER POLLACK CARL o. CARLSON THEIR ATTORNEYS March 18, 1969 E. P. BUCKVLIN, JR" ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Filed July 6, 1965 Sheet 2 of 10 6 I! '0! "D! at!) lg ID 2 m a L V T h a J 9' l-L. a?)

v V V V 8 a 2* O B 0) 2 T r 0 w n g IL l v W l V 5' Cl. 3 Q G 'll I E F T F LEI r l 1 F1 T :11 -k T FLJ :[j 0 INVENTORS m LB m E EDWARD P. BUCKLIN JR. F WERNER POLLACK IF :13 CARL o. CARLSON L K s 3 R 3,

THEIR ATTORNEYS March 18, 1969 E. P. BUCKLIN, JR.. ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Sheet Filed July 6, 1965 POLLACK O. CARLSON R. J W m 0 C M U W B N P l D R A W D E WERNER CARL THEIR ATTORNEYS March 18, 1969 E. P. BUCKLIN, JR, ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Filed July 6, 1965 Sheet 4 of 10 P A} 5 U u A 323:0 m A M 5323 N. 3359 T mx wx g Nv. mw 4 1 1 d a 5m .12??? 4 59:0 $39.9

A 6 2: v. .P e 5 a w afim w 1 5: 2 i m q m; 339 20 mm z d. ?m

i Q a we a u J o 5 m dz 7 u u J 1 9;

POLLACK o. CARLSON THEIR ATTORNEYS March 18, 1969 E. P. BUCKLIN, JR, ET 3,434,110

OPTICAL CHARACTER READING SYSTEM Sheet 5 of 10 mmm Filed July 6, 1965 R J 0 mwum K M mwmm Z EP 0 T W A R R A L H w aw H WC .T u m V m m 0m mm 0* QJO|-O w kw 9 my a k d March 18, 1969 E. P. BUCKLIN, JR. ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Sheet 6 of 10 Filed July 6. 1965 F IG.9

INVENTORS EDWARD P. BUCKLIN JR. WERNER POLLACK CARL 0. CARLSON THEIR ATTORNEYS March 18, 1969 E. P. BUCKLlN, JR, ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Filed July 6, 1965 Sheet 7 of 10 Code Code Error L Correct Signal Signal Ve Vc 1 F -m 301 r Il- F [I] o 550 F2 3500 322 i-1% 8 m 350a m I 3220. T 324 15 302 1 L 303 J i 3 40.

304 T 1 D K1190. O w

J6 1: zws T 1:309 T I I I 310 T9 fli 311 T F 2 312 'r i Code UJ 313 T Conversion g? 5 B 1 circuihy v Flip-Flops JP/ 314 T F M1 To M5 315 1;, was T k Ten To Five Code Converter INVENTORS EDWARD P. BUCKLIN JR. WERNER POLLACK CARL O. CARLSON W a w THEIR ATTORNEYS March 18, 1969 E. P. BUCKLIN, JR., ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Sheet 6 of 10 Filed July 6, 1965 M W F INVENTORS EDWARD P. sucxuu JR. WERNER POLLACK CARL o. CARLSON BYZR THEIR ATTORNEYS March 18, 1969 E. RBUCKUN, JR.. E AL 3,4

OPTICAL CHARACTER READING SYSTEM Filed July 6, 1965 Sheet 9 of 10 INVENTORS EDWARD P. BUCKLIN JR. WERNER POLLACK CARL O. CARLSON 7 Milli/ a THEIR ATTORNEYS March 18, 1969 E. P. BUCKLIN, JR. ET AL 3,434,110

OPTICAL CHARACTER READING SYSTEM Filed July 6, 1965 Sheet [Q of 10 WE INUHJ' FIGJG IWUHhELhF FIG.I5

' ENTORS I EDWARD BUCK JR.

WERNER ou. K -CARL o. CARLSON THEIR ATTORNEYS United States Patent Oflice 3,434,110 Patented Mar. 18, 1969 14 Claims ABSTRACT OF THE DISCLOSURE A system arrangement is disclosed for optically scanning documents to provide translation of printed characters into signals for use directly in data processing, and wherein concurrent scanning, error checking and storage of characters is provided for high speed reading. Rescanning of characters misread is provided by altering optical projection of character images by movement of a mirror simulating the required movement of the document for scanning. Each character not recognizable by the system is displaved on a screen along with other characters in a row, and a light spot is automatically projected by the system on the characters not recognized by the system whereby an operator can manually enter the character on a keyboard to provide continuing and complete translation of characters from the document.

This invention relates generally to an optical character reading system and, more particularly, to systems having improved means for rereading and transferring incorrectly read characters.

Rapid development of character reading systems, that are capable of reading conventionally printed information, has been due to the need for direct use of printed documents by computers without manual conversion of the information into computer language on punched paper tape or other record medium. It is of obvious benefit to be able to read records of business transactions, which are printed on ordinary paper stock, and transfer these records directly into the computers without the need of manually converting the printed information into computer language.

Character reading systems have been developed which have two sensing or reading apertures on a scanning means which scan across a row of stylized characters. The systems are capable of reading or recognizing relatively poor quality printed characters and serve as suitable inputs for computers. Systems of this type have been disclosed in US. Patent No. 3,102,995 and in the commonly assigned copending patent application of Frank R. Schmid Ser. No. 238,371, filed Nov. 19, 1962, now US. Patent No. 3,270,319 and of Richard K. Gerlach Ser. No. 122,126, filed July 6, 1961, now US. Patent No. 3,217,294. In these systems, it was recognized that it is considerably less expensive to develop optical character reading systems which are capable of reading stylized characters, than to read non-stylized characters, printed by the printing mechanisms that are provided on present business machines, e.g. adding machines, cash registers, etc. Also, it was found that the printing mechanisms that are provided on present business machines produce printed characters having wide tolerances. For example, the weight and uniformity of the print varies, the spatial relationship of the characters is not uniform and the characters may be skewed. In addition, the printed paper tape produced by these business machines may contain marks due to ink splatters or foreign particles in the paper stock which could be interpreted as a portion of a character, or there may be gaps in the character segments or such variation in shading which appear as gaps in the segments of a character. Any of these faults in a printed character makes recognition of the character by any reading system difficult. In the systems of the prior art, the paper tape, on which the stylized characters are printed, is moving slowly relative to the scanning means in a direction normal to the scanning direction, to allow each row of characters to move, in turn, within the reading range of the scanning means. When the two scanning apertures scan across a character within predetermined upper and lower scan paths, electrical signals are produced which represent the character. However, due to the fact that the wide tolerance printing is present, the electrical signals may not represent the character, i.e., the character may be misread. When this happens, in systems of the prior art, the paper tape which is moving relative to the scanning means, is stopped, backed-up, and again moved in the forward direction, so that the system is able to rescan the row. Because of the tolerances in the system, the back-up operation of the tape produces a variation in the path of the rescan so that there is a very good possibility that the two sensing apertures, will cross the unread character during the rescan over slightly different sections of the predetermined upper and lower scan paths of the character. During the rescan, the electrical signals produced may or may not represent a character depending on the nature of the print. If the character is again misread, another rescan is performed. If, after a predetermined number of rescans and reading attempts by the system, the character still remains unread, the system stops reading to allow the operator to manually transcribe all the characters in the row containing the unreadable character into the memory of the system.

While the systems of the prior art are successful in reading relatively poor quality printing, improved operation of the overall system is required to meet the demands of modern business, since the mechanism which physically reverses the motion of the paper tape is complicated and requires considerable maintenance. This is especially a problem since the reverse movement of the tape is only on the order of A", and occurs quite frequently during operation of the equipment, thus causing wear on the tape. Thus, in accordance with the character reading system of the present invention, improved operation is obtained by not reversing the motion of the tape with respect to the scanning means, in order to perform a rescan of a misread character in a given row. Instead, the tape is stopped and a mirror is provided in the optical system which mirror when pivoted slightly causes the area immediately ahead of the row of characters, to be again projected onto the scanning means. Then, the rate at which the mirror pivots back to its original position is controlled by suitable means so that the forward motion of the paper tape is simulated. Since only the mirror needs to be pivoted on an axis, it has also been found that the rescan operation is faster than before and the mechanism for pivoting the mirror requires practically no maintenance. Still faster operation of the system is obtained by providing means in the system which requires the operator to manually transcribe into the memory of the system only the unread characters in the row instead of all the characters in the row.

Accordingly, an object of this invention is to provide in a character reading system a means which allows for rescanning a row of characters without the need of reversing the motion of the tape relative to the scanning means.

Another object of the present invention is to provide in a character reading system an optical means which projects onto the scanning means of the system the area immediately ahead of the row to be scanned and then moves the image of the row in the direction to simulate the advance motion of the tape with respect to the scanning means so that the system may rescan the roW.

Another object of the present invention is to provide a display means which, whenever one or more characters in a row is unreadable to the system, points out the unreadable characters to the operator of the system so that the operator is required to transcribe only the unreadable characters in the row into the memory of the system while the system retains in memory the properly read characters in the row.

The above objects are accomplished in the typical embodiment of the present invention by combining novel means in a system, that is in general similar to the character reading system disclosed in the aforementioned copending patent application Ser. No. 238,371. However, in the present embodiment, the tape is read at a faster rate by having some of the operations performed in parallel. Thus, error checking and storage of a character which has just been read are performed while the next character is being read. After the system has scanned a row, a decision is made as to whether to output the information or to perform a rescan. If a rescan is required, a pivotable mirror is used to resweep the image of the row of characters past the sensing means, e.g., the two read apertures on a rotating drum. After a predetermined number of rescans, some characters are still unread, and they are deemed unreadable by the system. Whenever a row of characters contains one or more unreadable characters, the tape stops and the system displays an imge of the row of characters with the unreadable characters on a screen, and logical circuitry means are provided to project light spots on the screen to point out the unreadable characters. The first unreadable character as pointed out by the light spot is manually transcribed into the memory of the system by punching a key on a keyboard. Then, the logical circuitry means searches out the next unreadable character in the row (if there is one) and projects the light spot at that character so that this character may be manually transcribed. When all the characters in the row are stored within the memory of the system, a signal is produced to cause the contents of the memory to be outputted to the computer, and the system proceeds to read the next row.

The specific nature of the present invention as well as other advantages, objects, and uses thereof, will become apparent to those skilled in the art as disclosure is made in the following detailed description of a typical embodiment of the present invention illustrated in the accompanying drawings in which:

FIG. 1 shows a plurality of typical stylized characters for use in the typical embodiment of a character reading system in accordance with the invention described herein;

FIG. 2 illustrates a business document in the form of a short section of a paper tape having rows of stylized characters printed thereon;

FIG. 3 is a pictorial schematic of the optical reading or scanning system in accordance with this invention;

FIG. 4 is a block diagram of the circuitry for the character reading system;

FIG. 5 is a block diagram of a typical portion of the detector circuitry shown in FIG. 4;

FIGS. 6 and 7 show the right end portion of a row of stylized characters on a typical paper tape and the various waveforms derived by the circuitry of FIG. 4 in response to the initiation of a scan and the intersection of a reference mark provided at the right end of each row;

FIG. 8 is a more detailed block and schematic diagram of a detailed embodiment of the character identifying unit shown in block form in FIG. 4;

FIG. 9 shows the relationship of a typical stylized character with respect to the program counts provided by the program counter of FIG. 8, and with respect to the scanning apertures during a read scan;

FIG. 10 is a block diagram illustrating in detail the ten to five code converter of FIG. 8, showing in particular, the logical circuitry for producing the correct code signal Va and the error code signal Ve;

FIG. 11 is a perspective view of the optical back-up means schematically shown in FIG. 3;

FIG. 12 is a plan view and partial section of the optical back-up means shown in FIG. 11;

FIG. 13 is a front elevation and partial section of the optical back-up means;

FIG. 14 is an end elevation arid partial section of the optical back-up means;

FIG. 15 illustrates the image of a row of characters projected on the drum periphery when the drum is rotating in the direction as shown in FIG. 3; and

FIG. 16 illustrates the image of a row of characters projected on the drum periphery when the drum is rotating in a direction opposite to that shown in FIG. 3.

Referring now to the drawings, wherein like reference numerals designate like or corresponding parts throughout the several views, a set of sixteen stylized characters are illustrated in FIG. 1 which are recognizable by the typical character recognition system in accordance with the invention.

As shown in FIG. 1, the sixteen characters comprise decimal digits 0 through 9" and six additional characters or symbols. Each character is .divided into five vertical zones, U, V, W, X, and Y, one or more of which zones contain character information in the form of vertical segments or lines used in forming the character. It will be understood that the lines in FIG. 1 designating the zones, U, V, W, X, and Y, are provided merely for illustrative purposes and would not appear on actual printed characters.

The horizontal paths in FIG. 1 designated r, and r passing through the top and bottom halves of each char acter, such as the character O," indicate the two properly located scanning paths across zones U, V, W, X, and Y for which the presence or absence of a vertical segment in each zone is detected in order to obtain character information from which the character can be identified. If the presence of a vertical character segment in a zone is designated as a binary 1, and the absence of a character segment in a zone is designated as a binary 0" then, if a character is scanned along the top and bottom paths r, and r as indicated, a five-digit binary number will be obtained for each path as shown below each character in FIG. 1. The two five-digit binary numbers thus obtained may be considered as a ten-digit binary number, the stylizing of the characters in the system being such that a different ten-digit binary number is obtained for each character.

The stylizing of the characters in the system is chosen to be such that two reading errors are required in order to mis-identify a character, i.e., substitution of one character for another. For example, in scanning the letter O in FIG. 1, if the vertical segment in zone U of the scan along the path r were absent because of improper printing, the five-digit binary number obtained for the top scan along path r would be 10000 instead of 10001. An examination of the other characters in the system will reveal that there is no other character in the system having the five-digit binary number 10000 for the top scan along path r which also has the five-digit binary number 10001 for the bottom scan along path r Thus, an error of this type can be recognized and would not cause the character to be mistaken for any other character in the system. It will also be noted in FIG. 1, that each character is stylized so that a vertical segment is provided in zone U in either or both of the paths r or r This is done to permit accurate control of horizontal registration, as will hereinafter become evident.

Referring now to FIG. 2 a typical section of paper tape 12 from a cash register, adding machine or other business machine is shown having rows of stylized characters printed thereon, the stylizing being in accordance with FIG. 1. It will be noted that a vertical line or reference mark 46 is located to the right of each row of characters and extends vertically above portions of the characters in each row. While the provision of such a reference mark 46 is not essential, it does offer certain advantages which make its use desirable as will hereinafter become evident. The first row of characters 44 shown on the tape 12 in FIG. 2 is typical of a complete row of characters in which no misregistration or printing errors in the characters is visibly noticeable. The second row 48 on the tape 12 in FIG. 2 illustrates a group of characters having both vertical and horizontal misregistration, the characters 4, 7, and 1 being misaligned vertically, the characters 3 and 9 having excessive spacing therebetween, and the characters 4 and 2 being closer together than normal. The last two rows of characters on the tape 12, rows 52 and 54, each illustrate a situation where a portion of one of the characters on the row is absent because of improper printing. In row 52, a portion of the character 7 is missing while, in row 54, the entire lower portion of the character 2 is missing. The manner in which these typical rows of characters in FIG. 2 are read in the system of the present invention will become evident from the typical embodiment of the invention to be described herein.

Initially, it will be helpful to briefly summarize the overall operation of the typical embodiment to be described herein, as a result of which, rows of characters such as illustrated in FIG. 2 are read. First, each row of characters is progressively scanned by successive sweeps across the row as the tape 12 is moved past a reading station in the direction indicated by the arrow 11 in FIG. 2; e.g., the top portion of the characters of the first row are scanned rfirst and in subsequent sweeps the remainder of the characters in the row are scanned. A read scan is then performed on each character in the row, independently of the other characters in the row, when each character has moved to a position so that scanning is approximately along the proper paths r, and r shown in FIG. 1, and a record is made of each character read. After all eight characters on a row have been read and recorded, scanning is temporarily halted while the characters in the row are read-out into the suitable output equipment, the manner of character read-out being determined in accordance with a particular one of the characters in each row, specifically, the character nearest the reference mark 46. Employing such a procedure for read-out, the characters in row 44 in FIG. 2 would then be outputed in accordance with the character in the row, the characters in rows 48 and 54 would be outputed in accordance with the character P, and the characters in row 52 would be outputed in accordance with the character Another operating feature of the typical embodiment of the invention to be described herein is that, if an error is detected in a particular row, the paper tape 12 is stopped and an optical back-up means 30 (FIG. 3) is provided so that the system rapidly rescans the row in an attempt to obtain a proper reading. If after seven possible rescans a correct reading of all the characters in a row still cannot be obtained, an error signal is outputted; the row containing the error is displayed on a screen 41; and the image of each unread character is marked in turn on the screen so that the operator by use of a keyboard can manually enter one at a time the unread characters into the system. Scanning then proceeds to the next row.

Referring now to FIG. 3, a schematic representation is illustrated of an embodiment of an optical detector for the optical character reading system in accordance with the invention. The paper tape 12, containing rows of printed characters on the under side 13 thereof, is advanced by paper drive means 17 in the direction of the arrow 11, so as to traverse a reading station generally indicated by the numeral 14 at which each row of characters is optically scanned. The reading station 14 includes a rectangular support 15 having a convex surface 16 on which the side 13 of the tape 1'2 slides. The tape 12 is held against the surface 16 of support 15 by a vacuum drawn through small holes 18 formed in the support 15. Since a portion of the tape 12 is shown broken away, only some of the holes 18 are illustrated; however, the holes 18 are also provided under the tape 12 and on both sides of a rectangular slot 19. A row of characters is visible through the slot 19 when the row is aligned therewith.

The drive means 17 causes the paper tape 12 to slide over the support 15 in the direction of arrow 11 whenever a solenoid 31 (suitably supported) is de-energized. When solenoid 31 is de-energized, a release spring (not shown) within the solenoid urges an L-shaped lever 32 counterclockwise (as viewed in FIG. -3) about a fixed shaft 33, so that an idler roller 34 pinches the tape 12 between it and a continuously rotating roller 35 and the tape is moved in the direction of the arrow 11. The idler roller 34 is disposed to rotate about an axle 36 fixed between opposite arms of lever 32, and the rotating roller 35 is being rotated clockwise in the direction of arrow 61 by suitable means (not shown) on a fixed axle 27. A row of characters on tape 12 when aligned with the rectangular slot 19 in the support 15 is illuminated by a suitable light source and reflector 28.

Optical scanning of the row of characters exposed within slot 19 of support. 15 is accomplished as follows. An image of the row of characters in slot 19 is projected by way of a mirror 29 (on the optical back-up means 30 to be described hereinafter) and lens 21 onto the periphery of a rotating drum 20. The drum 20 is rotated at a constant speed by suitable means (not shown) in the direction of the arrow 39, and the drum serves as the scanning means of the optical detector 10. Since the tape 12 is moving in the direction of the arrow 11, the image of a typical row of characters focused on the drum 20 moves in the direction of arrow 40 as a result of the image being inverted upon passing through lens 21. In order that the image formed on the rotating drum 20 may be in focus for the entire length of the row of characters extending across the width of the tape 12, the convex surface 16 of the support 15 is made to conform to the curvature of the drum periphery, and the vacuum drawn through the small holes 18 causes the section of the tape 12 at the reading station 14 to assume the same curvature as the surface 16.

Also, an image of the row of characters is projected on a frosted glass screen 41 by way of a fixed mirror 43, lens 45, an image rotating prism 47, and another fixed mirror 49. The screen 41 is conveniently placed to be visible to the operator of the equipment. There are also located behind the screen, eight grain-size lights 50, each disposed to shine a light spot 353 over a respective character of the row of characters imaged on the screen. Each light is turned on by suitable logic circuitry means 59 in a manner to be hereinafter described to indicate any character that is unreadable to the system.

The rotating drum 20 is provided with a plurality of identical groups of apertures equally spaced around the drum periphery, each group comprising four diamondshaped apertures, such as illustrated by numerals 22a, 22b, 22c, and 22d in FIG. 3 for one such group. Interposed between the drum 20 and the lens 21 there is showh a stationary shroud 24 surrounding a portion of the drum periphery and having a viewing slot or window 23 therein of sufficient size to permit a row of characters to be imaged on the drum periphery. The resulting image is simultaneously scanned along four parallel paths by each group of four apertures as the group traverses the window. The number of groups of apertures, the rotational speed of the drum 20 and the speed of the tape 7 12 moving in the direction of arrow 11 are such that a row moves, for example, one eighth of a character height between scans.

Four light beam guides 26a, 26b, 26c, and 26d, made, for example, of Lucite, are positioned adjacent the inner peripheral surface of the drum opposite the window 23 in the shroud 24 so as to correspond to apertures 22a, 22b, 22c, and 22d, respectively. Changes in light level produced as each group of apertures 22a, 22b, 22c, and 22d scans the image on the rotating drum 20 are then transmitted through the respective beam guides 26a, 26b, 25c, and 26d to photosensitive elements 37a, 37b, 37c, and 37d, respectively. These photosensitive elements 37a, 37b, 37c, and 37d are responsive to light variations appearing in their respective beam guides 26a, 26b, 26c, and 26d to produce respective electrical signal outputs a, b, c, and d which are fed to character detector circuitry 38, as shown in FIG. 4.

Referring to FIG. 4, the detector circuitry 38 is constructed and arranged to provide five Output signals A, B, C, D, and S in response to the four input signals a, b, c, and d applied thereto. The signals A, B, C, and D consist of spike-shaped pulses of predetermined magnitude derived from input signals a, b, c, and d, respectively. Each of the pulses of the signals A, B, C, and D, thus represents the detection of a vertical character segment by its respective aperture 22a, 22b, 22c, or 22d. Since only the presence or absence of a character segment in each zone need be detected because of the stylizing employed, the apertures 22a, 22b, 22c, and 22d may be made sufficiently large so that the detector circuitry 38 can more easily distinguish character segments from minor imperfections in the paper, or from other minor extraneous marks. Preferably, the apertures 22a, 22b, 22c, and 22d are of diamond-shape, as shown in FIG. 9, with a transverse dimension approximately equal to the average width of a vertical character segment. In such case, the signals resulting from a great majority of foreign matter or spurious marks on the paper will represent only a relatively small percentage of the total area viewed by an aperture while, on the other hand, the signal resulting from a vertical character segment will represent the greater percentage of the total area viewed, thereby facilitating the distinguishing of character segments from the great majority of the other extraneous marks.

Before continuing with the description of the embodiment of FIG. 4, reference will be made to FIG. 5 to illustrate how the detector circuitry 38 is capable of producing output signals A, B, C, and D whose shaped pulses accurately represent the detection of vertical character segments by their respective apertures 22a, 22b, 22c, and 22d.

Referring to FIG. 5, it will be seen that a typical portion of the detector circuitry 38 includes an amplifier 155 which amplifies an input waveform, such as the waveform b obtained in response to the detection of a vertical character segment, and adjusts its clipping level to eliminate noise, thereby producing the resultant signal waveform 164. The signal waveform 164 is next differentiated in differentiating circuit 156 to provide the signal waveform 166. The signal waveform 166 is then amplified in amplifier 157 and coupled to the input of a blocking oscillator 158, which circuits are so constructed and arranged to cause the shaped output pulse B to appear at the output of the blocking oscillator 158 in response to the negative-going zero crossing of the differentiated waveform 166.

It should be noted that, by deriving each output pulse (e.g., pulse B) in response to the negative-going zero crossing of its differentiated detected waveform, each output pulse will occur substantially at the center line of its corresponding vertical segment regardless of its width. This most advantageous result is of great value in obtaining accurate horizontal registration, as will hereinafter become evident, and is achieved because the print of a vertical segment inherently grows lighter by equal amounts on each side of its center line; consequently, the negative-going zero of the differentiated waveform, in response to which the output pulse representing the segment is produced, necessarily occurs substantially at the center line of the vertical segment.

Having described the derivation of a typical pulse which is typical also of signals A, C and D, the description of the FIG. 4 embodiment of the invention will now be continued. It will be noted in FIG. 4 that, in addition to the signals A, B, C, and D, detector circuitry 38 provides a fifth output signal S. This output signal S is produced by the detector circuitry 38 in response to the abrupt change in the intensity of light seen by all four of the apertures 22a, 22b, 22c, and 22d as each group of apertures leaves the darkness of the shroud 24 and moves into the light of the window 23. At such a time, a large amplitude signal is produced by each of the respective photosensitive elements 37a, 37b, 37c, and 37d, in response to which, a unique pulse S can be produced by the detector circuitry 38, which preferably is chosen to have the same magnitude and shape as the pulses of signals A, B, C, and D (such as illustrated in FIG. 6). Each pulse S, therefore, may then be conveniently used to indicate the beginning of each scan of a row of characters.

Besides the signals A, B, C, D, and S obtained at the output of th detector circuitry 38, additional signals N B B and T are also required in the typical embodiment of FIG. 4. These additional signals provide information relating to the detection of the reference mark 46 (FIG. 2) at the right end of each row, and may conveniently be derived from the signal S (which is a pulse appearing at the start of each scan) and the signal B (which produces a discrete pulse each time a vertical character segment, or reference mark, is detected by the aperture 22b). The derivation of these additional signals N B B and T as well as their significance will be better understood by reference to FIGS. 6 and 7 along with FIG. 4.

In FIGS. 6 and 7, a portion of a row of characters on the tape 12 is shown, the shroud 24 being cut away to better illustrate the apertures 22a, 22b, 22c, and 22d, which are shown in a position such that they will shortly leave the shroud 24 and enter the area of the window 23 to begin another scan of a row of characters. Also shown in FIGS. 6 and 7, below the tape 12 are waveforms which illustrate the derivation of the signals N B B and T the waveforms in FIG. 6 representing the situation where the aperture 22b intersects the reference mark 46, and the waveforms in FIG. 7 representing the situation where the aperture 22b fails to intersect the reference mark 46.

Referring now to FIG. 4 along with FIGS. 6 and 7, it will be seen that the signal S is fed to the set input t of a normally false one-shot T1 and to the set input n of a flip-flop N1. Thus, as shown in the corresponding waveforms S, T and N in FIGS. 6 and 7, at the appearance of the pulse S (when apertures 22a, 22b, 22c, and 22d leave the shroud 24), both the one-shot T1 and the flip-flop N1 are switched to their true state, as indicated in FIGS. 6 and 7 by their respective true outputs T and N becoming more positive (positive representing true and zero representing false). While only the waveforms for the true outputs T and N of flip-flops T1 and N1 are shown in FIGS. 6 and 7, it will be understood that the false outputs T and N will always be in a state opposite to the state of their respective true outputs T and N The time for which the one-shot T1 remains true before returning to its false state is chosen in accordance with the maximum time allowed for the reference mark 46 to be intercepted if it is in the path of aperture 22b.

The signal B from the detector circuitry 38 is fed to an AND gate 53 along with the true output T of the oneshot T1. Thus, as will be understood from the corresponding waveforms T B, and E in FIGS. 6 and 7, an output pulse B is obtained from AND gate 53 only if a pulse is produced by signal B while T is true; that it, if aperture 22b intercepts the reference mark 46 before one-shot T1 returns to its false state. In FIG. 6, aperture 22b intercept the reference mark 46 so that a pulse B is produced at the output of AND gate 53. However, in FIG.7, no signal B is produced, since aperture 22b does not intercept the reference mark 46. Thus, a pulse B is produced during a scan of a row of characters only if the reference mark 46 is intercepted by aperture 22b. It will be noted that because the one-shot T1 remains true only for a predetermined time during which the reference mark is expected, other pulses produced by the signal B at other times will not be confused as the reference mark 46.

Having explained how the pulse B is derived, which represents the situation where aperture 22b intercepts the reference mark 46 during a scan, it will now be explained how the signal B is derived, which represents the situation where aperture 22b fails to intercept the reference mark 46. Referring again to FIG. 4, it will be seen that the derived signal B is fed to the false input 11 of flipflop N1, which is switched to the true state at the start of each scan by the pulse S. Thus, as shown in waveform B and N of FIGS. 6 and 7, if the reference mork is intercepted by aperture 22b (FIG. 6 situation), the pulse B is produced and flip-flop N1 is switched back toits false state. The signal B is now derived by feeding the true output N to an AND gate 55 along with the false output T of the one-shot T1. Then, as shown in the waveforms of FIG. 6-, if the pulse B appears, N will be switched false before T becomes true and the signal B which is the output of AND gate 55, will thus remain false during the scan. However, as shown by the waveforms in FIG. 7, if the pulse B does not appear because the aperture 22b does not intercept the reference mark 46, flip-flop N1 will not be switched false and will thereby be true when the one-shot T1 returns to its false state, causing T to become true. When this occurs, the output signal B of AND gate 55 will also become true (since both N and T will be true) and, as shown by waveform B in FIG. 7, will remain true until T again becomes false when the pulse S produced at the start of the next scan switches one-shot T1 t0 the true state.

The signals B and B derived as just described are fed, along with the false outputs N and T of flip-flop N1 and one-shot T1, respectively, and the signals A, B, C, D, and S obtained from detector circuitry 38, to a character identifying unit 250 (FIG. 4) which contains the identifying, recording and outputting means for the character reading system. The character identifying unit 250 is constructed and arranged for operation in response to those signals applied thereto to identify each character in the row being scanned, to provide for error detection and for rescanning of a row in response to a detected error, to store the character identifying information for each character until all the characters in the row have been read, and then to output each row of characters to suitable output equipment 252 in a manner determined by the character in the row adjacent the reference mark 46.

Besides providing for character read-out, the character identifying unit 250 also provides an output signal E whenever a row has been scanned eight times, in response to a detected error in the row, without being able to properly read the row. Also signals K K K K K K K K L and P are outputted. These signals are used to control in a manner to be hereinafter described, which one of the lights 50 (FIG. 3) needs to be lighted to show the unreadable character on the screen 41.

The character identifying unit 250 additionally provides signals H and Q from flip-flop H1 and one-shot Q1 in the unit 250 to control the movement of the tape 12 and the mirror 29, respectively, in a manner to be described hereinafter. At this time, it will be sufiicient to note that flip-flop H1 becomes true during character outputting to energize the solenoid 31 (FIG. 3) and halt the movement of the tape 12. Also flip-flop H1 becomes true when an error is detected. One-shot Q1 becomes true when an er ror has been detected in a row to energize another solenoid 56 (FIG. 3) causing the mirror 29 to rotate slightly (less than one degree in a clockwise direction about an axis 51) so that the row containing the error may be rescanned. Since the drum 20 is constantly rotating, there is a high degree of probability that the re-scanning op eration would be randomly different from the preceding scanning operation. Therefore, a correct reading may be obtained during the re-scan.

Referring now to FIG. 8, a detailed block and circuit diagram is illustrated of the character identifying unit 250 shown in FIG. 4. Before considering the circuitry of FIG. 8, however, it will be helpful to first provide a functional description of the operations which the character identifying unit 250 is to perform in accordance with the invention. These are listed below as follows:

(1) Operation of the identifying circuitry of unit 250 is initiated when the aperture 221) first intercepts the reference mark 46 which, as described in connection with FIGS. 4, 6, and 7, may be determined by the appearance of the pulse B (2) Each character in the row has a read scan performed thereon when the fourth aperture 22d first fails to intercept any portion of the character, thereby insuring correct vertical registration.

(3) After aperture 22b intercepts the reference mark of a row of characters, horizontal registration and column identification are achieved by cycling a program counter through a predetermined number of counts (for example, five except that when the last or eighth character in the row is being read, the program counter 80 is cycled twice for a total number of ten counts) each time any one of the four apertures 22a, 22b, 220, or 22d intercepts the vertical segment provided in zone U for each character. The position of each character in the row is then located by a column counter which counts the number of times the program counter 80 is cycled. The use of four apertures instead of only the two required for scanning the paths r and r (FIG. 1) assures that there would be no error in the column count since at least one aperture will always intercept the vertical segment provided in zone U of each character for a wide range of vertical misregistratron.

(4) After the aperture 22b first intercepts the reference mark adjacent a row of characters, character information is detected for every scan as the row is progressively scanned. However, the character information detected is not used for recognition; that is, no read scan is performed on a character until the aperture 22d first fails to intercept any portion of the character.

(5) After all eight characters in the row have been read and recorded for outputting which condition is indicated by signal J becoming true, there is no further detecting of character information, and scanning continues until the aperture 22b first misses the reference mark, indicating that the row has been scanned. This indication is conveniently provided by the signal B becoming true, as described in connection with FIG. 4. At such a time, the flip-flop H1 is switched to the true state energizing the solenoid 31 (FIG. 3) to stop the tape 12, and all eight characters of the row which have been recorded are now outputted in a manner determined by the character adjacent the reference mark. After all eight characters have been outputted, flip-flop H1 is switched back to the false state and scanning proceeds to the next row. It should be apparent that the stopping of the tape 12 would be unnecessary when the outputtiug does not require more time than required to begin the scanning operations of the next row of characters.

(6) In the event that in performing a read scan on one of the characters in the row, the character information detected is recognized as an error, or that eight columns are not counted in the row, an error signal is generated to switch flip-flop H1 to the true state. The result is that the SOlenoid 31 is energized to halt the tape 12 when the row of characters is aligned with slot 19 as indicated by signal B being true. Next, one-shot Q1 is switched true to energize solenoid 56 rotating the mirror 29 slightly about axis 51 (in a manner to be hereinafter described) until the mirror 29 causes the area, immediately in front of the row of characters, to be projected on the rotating drum. When one-shot Q1 switches false, the solenoid 56 is de-energized and the reverse rotation of mirror 29 is controlled by dashpot 58 to simulate the movement of the tape in the direction of arrow 11. A re-scan is thereby performed on the row containing the error. The re-scanning is permitted to occur seven times and, if an error is again detected during the seventh re-scan, the signal E becomes true to halt further reading of the row and to prevent the outputting of the unread row of characters. True signal E starts the program counter 80 to cause the unit 250 to read, in turn, each column position in a core array 200. The information read from each column position is stored in flip-flops M-M where it is checked. If the result indicates that the column position is full (contains a character) the information temporarily stored in flip-flops M1-M5 is written back into the column position. However, if the result indicates an empty column position, the program counter 80 is stopped. In turn the column counter 105 stops, and one of the respective lights 50 (FIG. 3) lights up to point out the character of the screen 41 which should be in the empty column. The operator writes the character into the flip-flops M1M5 by pressing the respective key on the keyboard 42 shown schematically in FIG. 3 at the same time the program counter is started.

With the above functional description in mind, the construction and operation of the character identifying unit 250 shown in FIG. 8 will now be described. Signals A, B, C, and D, which are obtained from detector circuitry 38 in FIG. 4, are fed to one input of AND gates 62, 64, 66, and 68, respectively. The other input of each of these AND gates 62, 64, 66, and 68 is fed by the output 70a of another AND gate 70, which is in turn fed by the signals N T E 1 and Q, to form the logical product thereof. It will be remembered from FIGS. 4, 6, and 7, that signals N and T fed to AND gate 70 are the false outputs of flip-flop N1 and the one-shot T1, respectively, the signal N being true only after a reference mark has been intercepted by aperture 22b, and the signal T being true only after the maximum time has elapsed for which the reference mark is permitted to occur after the apertures leave the shroud 24. As mentioned previously, the signal Q fed to AND gate 70 is the false output of one-shot Q1, while the signal E fed to AND gate 70 is the inverse of the signal E generated by error counter 230 when eight scans have failed to read a row correctly. Finally, the signal 1,, fed to AND gate 70 is the inverse of the signal J generated by character counter 210 when all eight characters on a row have been read. Since the output 70a of AND gate 70 is true only when all of the above described inputs thereto are true, AND gates 62, 64, 66, and 68 are enabled to pass the pulses of signals A, B, C, and D only after the reference mark is detected by aperture 22b and only when the one-shot Q1 has not been switched true and the error signal E or the final character signal J is not present. By so restricting the feeding of signals A, B, C, and D to the remainder of the character identifying unit 250, the pulses produced by these signals A, B, C, and D during periods when they are not required are conveniently eliminated and prevented from interfering with system operation. To distinguish the output signals of AND gates 62, 64, 66, and 68 from the signals A, B, C, and D they are designated as A B C and D respectively.

The manner in which the signals A B C and D are used to uniquely determine the position of the zones U,

V, W, X, and Y for each character will now be explained. Still referring to FIG. 8, it will be seen that the signals A B C and D are fed to an OR gate 72 whose output is, in turn, fed to the set or true input g of a flip-flop G1 Thus, in the normal scanning of a row of characters (assuming that the reference mark has been detected by aperture 22b), flip-flop G1 will be switched to the true state when the first pulse produced by any one of the signals A B C or D in response to its respective aperture 22a, 22b, 22c, or 22d intercepting the vertical segment provided in zone U for each character. When flip-flop G1 is switched true, its true output 6,, which is fed to the start input of an oscillator 75, also becomes true, causing oscillator 75 to generate sine waves 71 at a predetermined frequency determined in accordance with system requirements. The oscillator 75 is so arranged that the sine waves start with a positive rise. The sine waves 71 are fed to a blocking oscillator 73 which is constructed and arranged similar to blocking oscillator 158 (FIG. 5) to cause clock signals C preferably in the shape of sharp spikes to appear at the output in response to each negativegoing zero crossing of the sine wave 71. The clock signals C are fed to the advance input of the program counter which is constructed and arranged to count, in response to each clock signal C That is, when the output signal :P, is high or true; the next clock signal C switches output signal P true and signal P low or false; the next clock signal C switches signal P true and signal P false; etc. Then, the fifth clock signal C produced when signal P is true, resets the program counter 80 whereby signal P is switched true and signal P is switched false. The repetition rate of the sine wave provided by oscillator 75 is chosen so that each program count signal represents a particular one of the five zones U through Y and when the program counter 80 is switched to program count P apertures 22a, 22b, 22c, and 22d will have scanned past the first character. Since the first clock signal C is formed after one half of a sine wave, the clock signals C indicate the end of each of the five vertical zones U, V, W, X, and Y.

The Signal P of program counter 80 is fed to the reset input g of flip-flop G1 through AND gate 74, whose output is coupled to OR gate 76. The other inputs of AND gate 74 have fed thereto the clock signal C and signal K the inverse of signal K (signal K is generated by column counter to indicate that the last of the eight characters is being read). Therefore, flip-flop G1 will be switched back to its false state when the fifth clock signal C is formed by the blocking oscillator 73 when reading each one of the characters in the row except when reading the last one. Then, the tenth clock signal C switches fiip-fiop G1 to the false state. When flip-flop G1 switches false, the false output G of flip-flop G1, which is connected to the stop input of oscillator 75, will become true to stop oscillator 75 from producing sine waves and thereby cause program counter 80 to remain at its initial program count signal P where it first started until one of the apertures 22a, 22b, 220, or 22d next intercepts the vertical segment in zone U of the next adjacent character in the row.

In summary, therefore, the first one of the signals A B C or D which intercepts the vertical segment provided in zone U for each character (after the reference mark has been detected by aperture 221:), causes flip-flop G1 to become true to cause the oscillator 75 to generate sine waves 71 starting with a positive half cycle. Then, at the end of the first half cycle and every odd half cycle thereafter up to nine half cycles, the blocking oscillator 73 produces five clock signals C to cause program counter 80 to count through program counts P to P starting and ending with the initial program count P at which time 'the apertures 22a, 22b, 22c, and 22d will have scanned past the character. The program count signal P is fed to the reset input of g through AND gate 74 along with the clock signal C and the inverse K of signal K to 13 ensure that the flip-flop G1 is switched false at the end of signal P,, for each character in the row except the last or eighth character in the row wherein the program counter 80 cycles twice for reasons that will be explained hereinafter.

The relation of each character to program count signals P to P provided by program counter 80 in the manner just described, will be better understood with reference to FIG. 9, which is an enlarged view of the stylized character 2 showing the position of each vertical zone U, V, W, X, and Y with respect thereto. It will be remembered from the discussion of the previous paragraph that the first one of the apertures 22a, 22b, 22c, or 22d which intercepts the vertical segment provided in zone U for each character causes flip-flop G1 to be switched true to start oscillator 75 oscillating, and thereby cycle program counter 80 from its initial program count P to program count P and then back again to P For the position of the apertures 22a, 22b, 22c, and 22d with respect to the numeral 2 shown in FIG. 9, it will be seen that the aperture 22b is the one which will first intercept the vertical segment 2a provided in zone U for the character 2 to cause a pulse to be produced by the corresponding signal B As was brought out previously, each pulse produced by signals A B C and D in response to the interception of a vertical character segment by a respective aperture, occurs substantially at the center line of the vertical segment. Thus, it can be accurately presumed that the pulse produced by signal B in response to aperture 22b traversing the vertical segment 2a of character 2 in FIG. 9 occurs substantially at the center line 2b, which is also the center of zone U. Consequently, one program count is provided for each of the zones V, W, X, and Y, as shown by the waveforms P P P and P and the equivalent of a program count as shown by waveform P is provided for zone U. The signal P is switched to low output, or false when the apertures 22a, 22b, 22c, and 22d traverse the imaginary line dividing zone U and zone V. In order to achieve correct horizontal registration, that is, correct positioning of the zones U, V, W, X, and Y with respect to each character, the oscillator 75 is of the type that starts oscillating with a positive half cycle when it was switched on by signal B The sine wave 71, shown in FIG. 9 is the sine wave as produced by the oscillator 75, and is shown in relative position with the stylized character 2 (the time ordinate is positive moving to the left of FIG. 9). Whenever the sine wave 71 passes the zero voltage line during the negative-going excursion, the blocking oscillator 73 produces a spike pulse as shown by waveform C to accurately define the end of one vertical zone and the start of the next zone. Waveforms P P P and P as illustrated in FIG. 9 are high or true during the time their respective zones V, W, X, and Y are traversed by the apertures.

the zones U, V, W, X, and Y for every other character in the system may be achieved in the same manner as explained with respect to the character 2 illustrated in 'FIG. 9. It may additionally be noted at this time that, since horizontal registration is determined in response to the detection of the center line of the vertical segment which is provided in zone U for each character (and is thus also the center line of zone U), the horizontal location of all vertical segments of a character need 'be c0ntrolled only with respect to the centers of their vertical segments, without regard to printing weight or segment width. This makes possible greatly reduced tolerances in character printing quality as well as in character dimensioning.

An additional point to recognize at this time is that because the program counter 80 cycles back to signal P after the fifth clock signal C the system is ready to read the next character even though it is horizontally registered relatively close to the preceding character, such as illustrated by characters "4 and 2 of row 48 in FIG. 2. During the scanning of a row, program counter will be cycled in response to each character in the row and, as a result of such cycling, will provide accurate horizontal registration for each character (as described for the character 2 in FIG. 9), regardless of the horizontal spacing between characters. Thus, relatively large horizontal misregistrations, such as illustrated between characters 3 and 9 and relatively small horizontal misregistrations such as illustrated between characters 4 and 2 of row 48 in FIG. 2, can readily be handled without error.

Returning now to FIG. 8, it will be seen that signal B corresponding to aperture 22b, is fed to one input of each of a first group of five AND gates 82, 84, 86, 88, and 90, While signal C corresponding to aperture 22c is fed to one input of each of a second group of AND gates 92, 94, 96, 98, and 100. The other inputs of these two groups of AND gates are fed by respective ones of the program count signals P P P P and P as shown, program count signal P being fed to AND gates 82 and 92, program count signal P being fed to AND gates 84 and 94, program count signal P being fed to AND gates 86 and 96, program count signal P being fed to AND gates 88 and 98, and program count signal P being fed to gates 90 and 100.

The outputs of AND gates 82, 84, 86, 88, and 90 are fed to respective ones of the set inputs f f f f and f of flip-flops F1, F2, F3, F4, and F5, while the outputs of AND gates 92, 94, 96, 98, and are fed to respective ones of the set inputs f f f f and f of flip-flops F6, F7, F8, F9, and F10. Consequently, in scanning a character, such as the character 2 illustrated in FIG. 9, flip-flops F1, F2, F3, F4, and F5 will be set in accordance with the presence or absence of character segments in each of the zones U, V, W, X, and Y, respectively, traversed by the aperture 22b, while flipflops F6, F7, F8, F9, and F10 will be set in accordance with the presence or absence of character segments in each of the zones U, V, W, X, and Y, respectively, traversed by the aperture 22c. If a binary 1 indicates the presence of a vertical character segment and a binary 0 indicates the absence of a vertical character segment then, for the character 2 shown in FIG. 9, flip-flops F1, F2, F3, F4, and F5 would have the settings 10000, respectively, while F6, F7, F8, F9, and F10 would have the settings 00001, respectively. These binary codes correspond to the code of character 2 as shown in FIG. 1. It will be noted that flip-flops F1 to F10 are all caused to be re-set to their 0 settings by the logical product formed by program count signal P and clock signal C applied to the inputs of AND gate 69 whose output is applied to the reset inputs J to J and f to f thereof, in order to prepare them for receiving the next character information.

As each character in a row is scanned, flip-flops F1 to F10 will be set up in accordance with the presence or absence of character segments traversed by apertures 22b and 22c in each of the zones U, V, W, X, and Y. It next becomes necessary to provide means for determining the position of each character in the row. This position information is obtained by means of the column counter (located in the lower central portion of FIG. 8) which is caused to advance one count, in consecutive numerical order, each time a character is scanned, by feeding the program count signal P and the clock signal C to an AND gate 106 whose output is fed to the advance" input of column counter 105 through an OR gate 107. particular advance input fed by signals P and C 15 through AND gate 106 and through OR gate 107 is indicated as the input, which provides for counting in consecutive numerical order. Also provided are advance inputs P and the purpose of which will be described further on in this specification.

In order to ensure that the column counter 105 is initially at zero at the start of a scan of a row, the reference pulse B is fed to the reset input of the column counter 105 through an OR gate 109 to reset column counter 105 to its Zero count K Consequently, since program counter 80 then cycles once for each character in the row, as a result of which, program count signal P and clock signal C advance column counter 105 one count for each character scanned, the count of the column counter 105 would indicate the position in the row of the character being scanned. The use of the four spaced apertures 22a, 22b, 22c, and 22d assures that, for each scan in which the reference mark is intercepted by aperture 22b, at least one of the four apertures will intercept the vertical segment provided in Zone U for each character in the row, even in the presence of appreciable vertical misregistration between adjacent characters, such as illustrated occurring between the characters 7 and l in row 48 of FIG. 2. As a result, program counter 80 would reliably cycle for each character in the row, and the count of column counter 105 would identify the position in the row of the character being scanned.

It will be seen that at the end of signal P the two five-digit binary numbers set up in flip-flops F1 to F5 and F6 to P are converted by a code converter 110 (-FIG. 8) into a single five-digit binary number representative of the character scanned. It will be remembered that the stylizing has been chosen so that two reading errors are required in order to mis-identify a character. As a result, a single five-digit binary code can be derived from the two five-digit binary numbers obtained for each character which will be suflicient to represent the sixteen characters in the system shown in FIG. 1 and also provides one parity bit. The code converter 110 to which the true outputs F to F and F to F of flip-flops F1 to F5 and F6 to P10 are fed is provided for this purpose. By performing this conversion before operating further on the character information makes possible a considerable reduction in circuit complexity, since the data to be processed is reduced by one-half. Code converters, such as the ten-to-five code converter 110 illustrated in FIG. 8, may readily be provided by those skilled in the art.

As noted in the previous para-graph, code converter 110 is caused to operate to convert the character information set up in flip-flops F1 to F5 and F6 to P10, if the character is in a read scan position with respect to the apertures 22b and 22c, which are spaced in accordance with the spacing of r, and r in FIG. 1. However, from the time that aperture 22b first detects a reference mark 46, apertures 22b and 220 will continuously intercept character information for each character during the progressive scanning of a row and cause flip flops F1 to P10 to be set up in accordance therewith, even though the information detected will not be meaningful until the character is properly aligned for a read scan. In order to ignore the settings of flip-flops -F1 to P10 until a rea scan is performed on a character, code con verter 110 is permitted to convert the settings of flip-flops F1 to P10 only in response to an energization signal on output 119a of AND gate 119 which signal is caused to occur at the e d of signal P if a read scan has 16 been performed on the character scanned. By so controlling the operation of code converter 110, the character is transferred to flip-flops M1 to M5 at the same time that the flip-flops F1 to F10 are reset to the 0 state in preparation for scanning the next character in the row.

Aperture 22d provides a most advantageous way of determining whether or not apertures 22b and 220 are properly positioned for a read scan (along paths r, and r,,) of a character, in order to determine when code converter is to be permitted to operate. This is accomplished by spacing aperture 22d with respect to apertures 22b and 22c so that apertures 22b and 220 will have substantially the correct alignment for a read scan of a character during the scan that aperture 22d completely misses the character for the first time. This condition is typically illustrated in FIG. 9. It has been found that by using this condition to determine when a read scan has been performed, significantly greater tolerances on character dimensions are possible, as compared to other approaches to vertical registration, for example, the counting of the number of times a character portion is detected. It is important to note that since aperture 22d is to be used for this purpose, it is necessary that the corresponding circuitry for producing signal D provides the signal D not only when a vertical segment is intercepted by aperture 22d, but also, when any portion of a character is intercepted thereby, such as the horizontal portion of 2d of the character 2 illustrated in FIG. 9. For this reason, the detector circuitry 38 illustrated in FIG. 4 is designed so that signal D is produced when any portion of a character is detected. As will be understood by those skilled in the art, suitable means for this purpose may readily be provided in detector circuitry 38.

As mentioned previously, in order to control whether or not code converter 110 is to convert at the end of program count signal P code converter 110 is energized only in response to the energization signal on output 119a. This energization signal is provided when the output 119a of an AND gate 119 becomes true. Program count signal P is fed to AND gate 119 along with the clock signal C the false output E of a flip-flop E1, and the false output L of a flip-flop L1, as shown in FIG. 8. Since signal D corresponding to aperture 22d is fed to the set input e of flip-flop E1 and if, during the scan of the character, the signal D is produced in response to aperture 22d intercepting a portion of the character, flip-flop E1 will be switched to its true state. As a result E will become false, inhibiting AND gate 119 and thereby preventing operation of code converter 110. On the other hand, if aperture 22d fails to intercept any portion of the character scanned, so that no signal D is produced, then flip-flop E1 will remain in its false state and its false output B, will remain true. Thus, if signal L is also true (which is the case if this is the first time aperture 22d has failed to intercept any portion of the character scanned, as will hereinafter be described in detail), a read" scan is indicated and the clock signal C will pass through AND gate 119 to provide the energization signal. Code converter 110 will then convert the ten-digit binary number provided by the outputs F to F into a single five-digit binary number representative of the character scanned. It should be noted that flip-flop E1 is always switched false at the end of signal P in order to be ready to read the next character. This is accomplished by feeding signals P and C to an AND gate 117 whose output is fed to the reset or false input 2 of flip-flop E1.

The digits of the five-digit binary number thus provided by code converter 110 at the end of program count signal P in response to a read scan, are fed through respective OR gates 112, 114, 116, 118, and 120 to be set up in respective ones of flip-flops M1 to M5. Then, at the end of program count signal P determined when the next character is being read, the binary digits stored in the respective flip-flops M1 to M5 are applied through respective AND gates 122, 124, 126, 128, and 130 to respective row drivers 121 for the memory core array 200. The clock signal C at the end of signal P eifectively opens AND gates 122, 124, 126, 128, and 130, since AND gate 125, whose output feeds the other input of each of AND gates 122, 124, 126, 128, and 130, is in turn fed by clock signal C program count signal P and the false output Q of one-shot Q1, whose false output Q is normally true. Row drivers 121 are constructed and arranged so that each driver, which is coupled to any one of the flip-flops M1 to M5 that is set to the 1 state, will cause, at the end of program count signal P onehalf write select current to be applied to a respective row drive line 129, that is coupled to the row driver, and to the row of cores of the memory core array 200. However, the drivers 121- that are coupled to the flip-flops which are set to the state will apply no current to the respective row drive line 129 of its corresponding row of cores.

Memory core array 200 is comprised of eight columns of cores, each column having five cores. The eight colums of cores respectively correspond to the eight characters in each row on the tape 12 (FIG. 2), and the five cores in each column provide for the storage of a fivedigit binary number representative of a respective character on the row after a read scan has been performed thereon. At the end of program count signal P in addition to the one-half write select current being applied to those rows of cores whose corresponding M1 to M flipflops are set to the 1 state (as described in the previous paragraph), a particular column of cores in array 200, corresponding to the count of column counter 105 (which count still corresponds to the column position of the character stored in flip-flops M1 to M5 even though apertures 22a, 22b, 22c, and 22d have intercepted the following character), also receives half-select write current applied thereto. If, for example, the character in the first column position has been read and stored in flip-flops M1 to M5, the column counter 105 has been set to count K when signal P was formed during the reading of the character. Then, when the character in the second column position is being read, signal P is formed and the first column of cores in array will receive one-half write select current at the end of signal P causing those cores in the first column which also receive one-half write current from a corresponding M1 to M5 flip-flop to receive a total of full write select current to switch these cores from the 0 to the 1 state, the other cores in the first column as well as all the other cores in the array 200 receiving no greater than one-half write select current and thereby remaining essentially undisturbed. In the meantime, the ten bits for the character in the second column position is being stored in flip-flops F1 to P10.

It will thus be understood that the five-digit binary number set up in flip-flops M1 to M5 by code converter 110 at the end of program count signal P in response to a read scan performed on a character scanned, will thereby be transferred, at the end of program count signal P generated while the next character is being read, to the respective column of cores in array 200. In a similar manner, the five-digit binary number corresponding to every other character in the row, which is likewise set up in flip-flops M1 to MS as a result of a read scan being performed thereon, is recorded in a respective column of cores in array 200 corresponding to the position of the character in the row.

The specific manner in which half-select write current is applied to the column of cores of memory core array 200 in accordance with the count of column counter 105 will now be explained in detail. Each of the outputs K K K etc., of column counter 105, when true is a positive signal which when inverted by its respective inverter I and fed through a base resistor to the base of its respective normally cut off transistor 137 causes transistor 137 to turn on and thereby efiectively ground, through the grounded transistor emitter, the write and read column drive lines 133 and 135 connected to the transistor collector. The write column drive line 133 passing through each column of cores is the only one that need be considered at this time and it will be seen that the opposite end of each write column drive line 133 is fed through a respective diode 131 to the emitter of a normally cut-off write transistor 141. The collector of transistor 141 is connected to a D-C voltage V through a collector resistor 142, and the base of transistor 141 is connected through a base resistor and an inverter I to the output a of an AND gate 140. When the clock signal C appears at the end of signal P it passes through AND gate 140 (since Q also fed to AND gate 140 is normally true) to turn on transistor 141 and thereby cause a current to flow in the column drive line 133 whose transistor 137 has been turned on by the count of column counter 105. The value of V and collector resistor 142 is chosen so that the current flowing in the selected column drive line 133 is equal to one-half the write select current required to switch a core in array 200 from the "0 to the 1 state and, when added to the additional one-half write select current applied to those cores of the selected column whose M1 to M5 flip-flops are set to the 1 state, causes the settings of flip-flops M1 to M5 to be transferred, at the end of the program count signal P to the column of cores in array 200 corresponding tothe position in the row of the character scanned.

It should now be evident just how the five-digit binary number provided at the output of code converter 110 at the end of program count signal P in response to a read scan performed on the character scanned, is set up in flip-flops M1 to M5 and then, recorded in a column of the memory core array 200 corresponding to the position of the character in the row while the system is reading the next character in the row. With this explanation as background, the purpose of flip-flop L1, whose false output L also determines whether or not the code converter 110 will operate at the end program count signal P will now be understood as follows. It -will be appreciated that once a particular character has a read scan performed thereon and an identifying five-digit binary number recorded in a respective column of cores of memory core array 200, aperture 22d will still fail to intercept any portion of a character as scanning progresses. Thus, the false output E of flip-flop E1 will remain true and, if no other provision were available, would cause code converter 110 to operate, even though apertures 22b and 220 would no longertraverse the paths r and r corresponding to a read scan. As mentioned previously, aperture 22d indicates a read scan only when it first fails to intercept a portion of the character scanned. Thus, to prevent upsetting a properly recorded five-digit binary number in memory core array 200, it is necessary to determine whether or not a read scan has already been performed on a particular character, in which case, a five-digit binary number would be already recorded in the respective column of array 200. If so, the code converter 110 should be prevented from operating, since apertures 22b and 220 would no longer be in the correct position for a read scan. Therefore, during the cycling of program counter 80 such as at the end of signal P for the character being read, a read operation is performed on the array 200 to read out the five-digit binary number recorded in the column corresponding to the position of the character in the row.

Since column counter 105 has already been set, at the end of program count signal P to a count corresponding to the character being scanned, readout from the five cores in the corresponding column in array 200 is conveniently accomplished at the end of signal P by applying program count signal P and clock signal C to the inputs of an AND gate 149 whose output is coupled through OR gate 150 and an inverter I to turn on a normally cut off read-transistor 151, whose collector is connected to a DC voltage V through collector resistor 152, and whose emitter is connected to each read column drive line 135 through a respective diode 139. At the end of the program count signal P therefore, current will flow through the read column drive line 135 whose respective transistor 13 7 has been turned on by column counter 105, the value of V and the collector resistor 152 being chosen so that the current flowing in the selected read column drive line 135 is equal to full read select current. It should be noted that column counter 105 has been advanced at the end of signal P so that now the count on the column counter represents the column of the character being read. Thus, if any of the cores in the selected column are in the 1 state, the full read select current flowing therethrough causes these cores .to be switched to the state, as a result of which, a pulse is induced in each row sense line 143 corresponding thereto. Each such induced pulse is then amplified by respective sense amplifiers 163 to provide signals S S S S and S which correspond to the five-digit number read out of the five cores in the selected column, the presence of a pulse designating 1 binary l and the absence of a pulse designating a binary 0. These signals S S S S and S are then fed through respective AND gates 172, 174, 176, 178, and 180 (since Q and J produce a true signal on output of AND gate 168 which signal is fed through OR gate 181 to the other input of each of these AND gates) and fed through respective OR gates 112, 114, 116, 118, and 120 to set up respective ones of the flip-flops M1 M2, M3, M4, and vM5 in accordance therewith.

In summary, therefore, it will be understood that at the end program count signal P the data stored in the column of cores in array 200, corres onding to the column position of the character being scanned, is read out of array 200 and set up in respective ones of flip-flops M1 to M5. It will be noted that flip-flops M1 to M5 were cleared w-hen program count signal P and the clock signal C pass a true signal through AND gate 148 and, in turn, through OR gate 199 to the reset inputs m to m;, of flip-flops M1 to M5. Flip-flops M1 to M5 are cleared preparatory to their being set up at the end of program count signal P in accordance with the data stored in the selected column of cores in array 200.

Now referring specifically to flip-flop L1, it will be seen that the true outputs M M M M and M of respective flip-flops M1 to M5 are each fed to an OR gate 179, whose output is fed to an AND gate 182 along with program count signal P and clock signal C the output of AND gate 182 being in turn fed to the set input 1 of flip-flop L1 through OR gate 185. Thus, if any of the flip-flops M1 to M5 were set in the 1 state at the end of program count signal P in response to a "1 being recorded in a respective core of the column of cores selected by column counter 105, then flip-flop L will be switched to the true state at the end of program count signal P This occurs because, if flip-flops M1 to M5 contain a binary number when at least one of the outputs M to M is true, AND gate 182 will be enabled to permit the clock signal C formed at the end of program count P to pass therethrough to be applied to set input 1 Flip-flop L1 is switched to the true state, and output L of flip-flop L1 then is false.

It will be understood, therefore, that if a 1 is recorded in any core of the column of cores in array 200, corresponding to the position in the row of the character being scanned, L will become false in the manner described in the previous paragraph. Since a 1 can be placed in a core of a column in array 200 only if a fivedigit binary number corresponding to a character is recorded therein (since the five-digit numbers add up to odd parity, there is no such character in the system whose five-digit binary number consists of five binary zeros), then the fact that L is false at the end of signal P will indicate that the particular character being scanned has already been read and recorded in its respective 20 column. With L then false, the clock signal C at the end of signal P is prevented from passing through AND gate 119 and the energization signal will not appear on output 119a to energize code converter 110, even though E is true as a result of aperture 22d failing to intercept any portion of the character scanned.

If, however, outputs M M M M and M are all zero at the end of program count signal P indicating that the character has not been recorded in its respective column in array 200, then flip-flop L1 will remain in the false state since it has been set false by signals C and P fed to AND gate 146 at the end of program count signal P Signal L will be true at the end of program count signal P to permit code converter 110 to be operated if, of course, E is also true, indicating that aperture 22d has failed to intercept any portion of the character scanned. Consequently, code converter 110 can operate at the end of program count signal P only if the two conditions of a read scan are both present; that is, (1) if aperture 22d has failed to intercept any portion of the character scanned so that E is true at the end of signal P and (2) if the character has not been already read and recorded in its respective column of array 200 so that L is also true at the end of signal P Or, stated another way, a read scan has occurred if this is the first time aperture 22d has failed to intercept any portion of the character scanned.

Returning temporarily to a consideration of the memory core array 200 once more, it will be remembered that, at the end of program count signal P the column of cores corresponding to the column position in the row of the character being scanned was read out and set up in flip-flops M1 to M5. All of the cores in the selected column will thus now be in the 0 state because of the destructive read-out inherent in a magnetic core memory. Consequently, if the column of cores, read out of array 200 at the end of program count signal P stored a five-digit number corresponding to a recorded character, it is necessary that this five-digit number be written back into the selected column, or it will be lost. Fortunately, this may readily be accomplished in the character identifying unit 250 of FIG. 8, since the fivedigit binary number set up in flip-flops M1 to M5 at the end of program count signal P will still be present when the program counter is again cycled to rewrite back into array 200 at the end of signal P because the flipfiops M1 to M5 are not yet cleared. Thus, at the end of program count signal P AND gate 125 passes the clock signal C and the five-digit binary number represented by the settings of flip-flops M1 to M5 will automatically be returned to its respective column of cores in array 200, just as if a new five-digit number corresponding to a character was just being recorded in its respective column.

In summary, therefore, it will be understood that the settings of flip-flops M1 to M5 are always transferred at the end of program count P that is generated while the next character in the row is being read (unless Q is false) to the column of cores selected by column counter 105. If the character being scanned has already been read and recorded in its respective column, then the five-digit number, already recorded in the cores of the respective column, is set up in the flip-flops M1 to M5 at the end of program count signal P and remains undisturbed at the end of program count signal P when code converter does not operate, whereupon, at the end of program count signal P (formed while reading the next character) the five-digit number in flip-flops M1 to M5 is again transferred back to its respective column.

If, however, no five-digit number is stored in the respective column of the character being scanned so that all Os are set up in flip-flops M1 to M5 at the end of program count signal P L is true at program count signalv P and two situations are then possible. First, if aperture 22:! has failed to intercept any portion of the 

